﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Text;
using System.Web.UI.WebControls;
using SIMCObjetoNegocio;
using SIMCIntegratedReports;

public partial class WebUserControls_WUCMovimientos : System.Web.UI.UserControl
{

    private int CantTotalRegistrosPortafolio;
    private int CantRegistrosEnPagina;

    protected void Page_Load(object sender, EventArgs e)
    {
        SIMCFachadaNegocio.FachadaPortafolio fachada = new SIMCFachadaNegocio.FachadaPortafolio();

        if (Request.QueryString["idcuenta"] != null)
        {
            int id = Convert.ToInt32(Request.QueryString["idcuenta"].ToString());



            if (Request.QueryString["idportafolio"] != null)
            {
                int idport = Convert.ToInt32(Request.QueryString["idportafolio"].ToString());

                Portafolio portafolio = fachada.BuscarPortafolio(idport, ((SessionVariable)Session["variable"]).FechaPortafolio);

                lblAlias.Text = portafolio.NombreTitular;

                lblTipo.Text = portafolio.DescripcionTipoPortafolio;

                lblFecha.Text = ((SessionVariable)Session["variable"]).FechaPortafolio.ToShortDateString();


                PagedResult<Movimiento> movimientos = fachada.BuscarListaMovimiento(id, ((SessionVariable)Session["variable"]).FechaPortafolio, portafolio.IdTitular, StartRow);
                CantRegistrosEnPagina = 20;
                CantTotalRegistrosPortafolio = movimientos.Total;

                List<Movimiento> ListaMovimientos = movimientos.Result.ToList();

                gvPortafolioBalancePosicion.DataSource = ListaMovimientos;
                gvPortafolioBalancePosicion.DataBind();

                double saldo = 0;
                double temp = 0;
                string signo = string.Empty;
                foreach (GridViewRow row in gvPortafolioBalancePosicion.Rows)
                {
                    signo = ListaMovimientos[row.RowIndex].Signo;
                    temp = ListaMovimientos[row.RowIndex].Monto;
                    temp = (signo == "-") ? temp : temp * -1;
                    saldo += temp;
                    if (signo == "+")
                    {
                        row.Cells[3].Text = row.Cells[3].Text.Insert(0, "-");
                    }
                    row.Cells[4].Text = saldo.ToString("n");
                }



                string fecha = ((SessionVariable)Session["variable"]).FechaPortafolio.ToString("dd/MM/yyyy");
                ImageButton1.Attributes.Add("OnClick", CreateQueryString(portafolio.Id, fecha, portafolio.IdTitular, id).ToString());
            }


        }
    }

    protected void gvPortafolioBalancePosicion_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if ((e.Row.RowType == DataControlRowType.Footer) && (CantRegistrosEnPagina > 0))
        {
            int totalPages = CantTotalRegistrosPortafolio / CantRegistrosEnPagina;

            if (CantTotalRegistrosPortafolio % 10 > 0)
            {
                totalPages += 1;
            }
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < totalPages; i++)
            {
                int pageNo = i + 1;
                string pagina = string.Empty;
                if ((StartRow >= i * CantRegistrosEnPagina) && (StartRow < ((i * CantRegistrosEnPagina) + CantRegistrosEnPagina)))
                {
                    pagina = "<b>" + pageNo.ToString() + "</b>";
                }
                else
                {
                    pagina = pageNo.ToString();
                }


                sb.Append("<a href=\"wfReportesPortafolio.aspx?idportafolio=" +
                          Convert.ToInt32(Request.QueryString["idportafolio"].ToString()) +
                          "&idcuenta=" + Convert.ToInt32(Request.QueryString["idcuenta"].ToString()) +
                          "&StartRow=" + CantRegistrosEnPagina * i + "\">" + pagina + "</a>&nbsp;");
            }
            e.Row.Cells[0].ColumnSpan = 5;
            e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Left;
            e.Row.Cells[0].Controls.Add(new Literal { Text = sb.ToString() });
            e.Row.Cells.RemoveAt(4);
            e.Row.Cells.RemoveAt(3);
            e.Row.Cells.RemoveAt(2);
            e.Row.Cells.RemoveAt(1);
        }
    }

    public int StartRow
    {
        get
        {
            if (Request.QueryString["StartRow"] != null)
            {
                return Convert.ToInt32(Request.QueryString["StartRow"].ToString());
            }
            return 0;
        }
    }

    private StringBuilder CreateQueryString(int? IdPortafolio, string Fecha, int IdTitular, int IdCuenta)
    {
        StringBuilder strScript = new StringBuilder();
        strScript.Append("window.open('pVisorIntegrado.aspx?PortafolioID=");
        strScript.Append(IdPortafolio + "&Fecha=" + Fecha + "&TitularId=" + IdTitular + "&CuentaId=" + IdCuenta + "&FechaInicial=" + new DateTime(1900, 1, 1).ToString());
        strScript.Append("&nombreReporte=" + TipoReporte.Movimientos.ToString());
        strScript.Append("',null,'width=880,height=700,resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=yes,menubar=no,copyhistory=no');");
        return strScript;
    }
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {

    }
}